#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
#define endl '\n'
const int N = 205;

int n, L, K;
struct Node {
  double p;
  int v;
  bool operator<(const Node& o) const { return v > o.v; }
} a[N];
double dp[N][N];

int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n >> L >> K;
  if (K > n) K = n;
  rep(i, 1, n) cin >> a[i].p;
  rep(i, 1, n) cin >> a[i].v;
  sort(a + 1, a + n + 1);
  rep(i, 1, n) a[i].p /= 100.0;
  dp[0][K] = 1;
  rep(i, 1, n) {
    // lose: L && K keep
    // win L++ K += a[i].v
    per(l, n, 0) rep(k, 0, n) {
      int k2 = min(n, k + a[i].v);
      if (k2 >= 0) {
        dp[l + 1][k2] += dp[l][k] * a[i].p;
      }
      dp[l][k] *= (1 - a[i].p);
    }
  }
  double sum = 0;
  rep(l, L, n + 1) rep(k, 0, n) sum += dp[l][k];
  cout << fixed << setprecision(6) << sum;
  return 0;
}